package Ex18;

public class Coche {
	
	private int numeroPuertas;
	private String color;
	private String matricula;

	private double deposito;
	private double depositoCapacidad;
	private double consumo100;
	
	public Coche (){
		
		numeroPuertas = 5;
		color = "Azul";
		depositoCapacidad = 50;
		deposito = 30;
		consumo100 = 5.6;
		
	}
	
	public int getNumeroPuertas() {
		return numeroPuertas;
	}

	public void setNumeroPuertas(int numeroPuertas) {
		this.numeroPuertas = numeroPuertas;
	}

	public String getColor() {
		return color;
	}

	public void setColor(String color) {
		this.color = color;
	}

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	
	public double getDepositoCapacidad() {
		return depositoCapacidad;
	}

	public void setDepositoCapacidad(double depositoCapacidad) {
		this.depositoCapacidad = depositoCapacidad;
	}
	public double getDeposito() {
		return deposito;
	}
	public void setDeposito(double deposito) {
		this.deposito = deposito;
	}
	public double getConsumo100() {
		return consumo100;
	}
	public void setConsumo100(double consumo100) {
		this.consumo100 = consumo100;
	}
	
	
	void realizarViaje (int km) throws SinGasolinaException {
		if (this.tieneGasolinaViaje(deposito, km)) deposito = deposito - (km * (consumo100 / 100));
		else {
			SinGasolinaException ex = new SinGasolinaException("No tiene suficiente gasolina para el viaje");
			throw ex;
		}
	}
	
	boolean tieneGasolinaViaje (double litros, double km){
		
		if (km * (consumo100 / 100) <= litros ){
			return true;
		} else return false;

	}
	
	
	void repostar (double litros) throws DepositoLlenoException {
		if (deposito + litros > depositoCapacidad){
			DepositoLlenoException ex = new DepositoLlenoException("Demasiada gasolina");
			throw ex;
		} else deposito = deposito + litros;
	
	}
	
	public String getEmpresa(){
		System.out.println("Generalizacion de la clase");
		return "Generalizacion de la clase";
	}
	

}
